package com.ruoyi.common.core.validator;


import com.ruoyi.common.core.annotation.ListValue;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.group.UpdateGroup;


import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

public class ListValueValidator implements ConstraintValidator<ListValue,String> {

    private Set<String> set=new HashSet<>();

    private Set<Class<?>> groupSet=new HashSet<>();


    /*
     * 校验注解开始前的一些初始化工作,可以从这获取一些注解里的信息
     * */
    @Override
    public void initialize(ListValue constraintAnnotation) {
        String[] value = constraintAnnotation.value();

        for (String v :
                value) {
            set.add(v);
        }

        Class<?>[] groups = constraintAnnotation.groups();

        groupSet.addAll(Arrays.asList(groups));

    }



    /*
     * 自定义的校验逻辑,value值是我们真实传过来的值
     * */
    @Override
    public boolean isValid(String value, ConstraintValidatorContext context) {
        if(StringUtils.isEmpty(value)){
            return true;
        }
        return set.contains(value);
    }
}

